#include    <iostream>

static void say( char const s[] ) { std::cout << s << std::endl; }

struct Foo
{
    Foo();
    ~Foo();
};

Foo::Foo() { say( "Constructed" ); }
Foo::~Foo() { say( "Destroyed" ); }
Foo* newFoo() { return new Foo; }
void destroy( Foo* p ) { delete p; }
